#!/user/bin/evn Python3 
# -*- coding:utf-8 -*-
# project:PythonForWork
# OsOperate.py
# os 模块相关操作，例如遍历目录，删除文件等
# author:ZhaoHeXin
# creation time:2019/12/2--10:52
import os
import shutil


class OsOperate(object):

    def __init__(self, path):
        """
        对目录/文件的相关操作
        :param path:路径
        """
        self.path = path

    def list_dir(self, deep=False):
        """
        获取目录下所有文件
        :deep:是否深层遍历，即是否遍历到文件为止,默认为True
        :return:返回文件列表
        """
        file_list = os.listdir(self.path)
        if deep:
            file_list = []
            for root, dirs, files in os.walk(self.path):
                for i in files:
                    file_list.append(i)
        return file_list

    def del_file(self, deep=False):
        """
        所指定路径的文件，路径可以是绝对路径，也可以是相对路径,不经过回收站 慎重
        :param deep:是否深层次删除，即碰到文件夹是否删除，默认为否
        :return:删除执行结果
        """
        # 判断所给路径是否为文件
        if os.path.isdir(self.path):
            filelist = os.listdir(self.path)  # 列出该目录下的所有文件名
            for f in filelist:
                filepath = os.path.join(self.path, f)  # 将文件名映射成绝对路劲
                if os.path.isfile(filepath):  # 判断该文件是否为文件或者文件夹
                    os.remove(filepath)  # 若为文件，则直接删除
                    print(str(filepath) + " removed!")
                elif os.path.isdir(filepath) and deep is True:
                    shutil.rmtree(filepath, True)  # 若为文件夹，则删除该文件夹及文件夹内所有文件
                    print("dir " + str(filepath) + " removed!")
        else:
            os.remove(self.path)  # 若为文件，则直接删除
            print(str(self.path) + " removed!")
        return True

    def creat_dir(self):
        """
        创建文件夹
        :return: 返回结果值
        """
        if os.path.exists(self.path) is False:
            os.mkdir(self.path)
        return True


if __name__ == '__main__':
    # path = r"C:\Users\ZhaoHeXin\Desktop\rkbd2019_00GJ"
    # a = OsOperate(path)
    # b = a.list_dir(False)
    # print(b)
    # a.del_file(True)
    pass
